//
//  MainTabBar.swift
//  Weibo
//
//  Created by 闫博123 on 16/1/11.
//  Copyright © 2016年 闫博123. All rights reserved.
//

import UIKit

class MainTabBar: UITabBar {

    override init(frame: CGRect)
    {
        super.init(frame: frame)
        
        // 添加加号按钮 
        addSubview(plusBtn)
    }
    
    // 重写 init(frame) 系统默认 当前类的对象 只能够通过手写进行创建
    // 如果对象通过xib创建 默认会实现一个报错
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    // 修改 tabBar 子视图的 位置 大小 并且将中间的位置留出来
    override func layoutSubviews()
    {
        super.layoutSubviews()
        
        let w = self.bounds.width / 5
        
        let h = bounds.height
        
        let rect = CGRect(x: 0, y: 0, width: w, height: h)
        
        // 定义索引
        var index : CGFloat = 0
        
        // 1. 遍历子视图
        for subview in subviews
        {
            // 2. 获取所有的UITabBarButton类型的对象
            if subview.isKindOfClass(NSClassFromString("UITabBarButton")!)
            {
                subview.frame = CGRectOffset(rect, index * w, 0)
                
//                if index == 1
//                {
//                    index++
//                }
//                index++
                
                // 通过三目实现上面代码
                index += index == 1 ? 2 : 1
            }
        }
        // 修改加号按钮的位置
        plusBtn.frame = CGRectOffset(rect, 2 * w, -10)
        
        // 让button的视图层次到上面来
        bringSubviewToFront(plusBtn)
    }
    
    // 懒加载获取加号按钮
    lazy var plusBtn : UIButton =
    {
        // UIButton()实例化  会得到一个自定义类型的Button
        let btn = UIButton()
        
        // 设置按钮的背景图片 -- 普通状态
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
        
        // 设置按钮的背景图片 -- 高亮状态
        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Highlighted)
        
        // 设置按钮的图片 -- 普通状态
        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
        
        // 设置按钮的图片 -- 高亮状态
        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Highlighted)
        
        // 自适应大小
        btn.sizeToFit()
        
        return btn
    }()


}
